package com.jic.market.service.rest.groupon;

import com.jic.common.base.vo.PageResult;
import com.jic.common.base.vo.RestResult;
import com.jic.market.request.rest.bargain.MyBargainResponse;
import com.jic.market.request.rest.groupon.*;
import com.jic.market.response.rest.groupon.*;

import java.util.List;

/**
 * @author : xuyongliang
 * @date : 2020/4/7 1:56 下午
 * @description: 拼团活动H5服务
 * @modified By:
 * @version: V1.0
 */
public interface GrouponRestService {

    /**
     * 拼团列表
     * @param request
     * @return
     */
    RestResult<PageResult<GrouponInfoResponse>> grouponList(GrouponListRequest request);


    /**
     * 拼团活动详情
     * @param request
     * @return
     */
    RestResult<GrouponInfoResponse> grouponInfo(GrouponInfoRequest request);


    /**
     * 开参团活动校验
     * @param request
     * @return
     */
    LaunchOrJoinGrouponResponse launchOrJoinGrouponCheck(LaunchOrJoinGrouponRequest request);

    /**
     * 开参团活动
     * @param request
     * @return
     */
    LaunchOrJoinGrouponResponse launchOrJoinGroupon(LaunchOrJoinGrouponRequest request);

    /**
     * 查询当前活动已开团未成团的列表
     * @param request
     * @return
     */
    RestResult<PageResult<CurrentJoinedGrouponResponse>> currentJoinedGrouponList(
            CurrentJoinedGrouponRequest request);

    /**
     * 查询开团详情
     * @param request
     * @return
     */
    RestResult<LaunchGrouponDetailResponse> launchGrouponDetail(LaunchGrouponDetailRequest request);


    /**
     * 拼团支付同步
     * @param request
     * @return
     */
    PostPayGroupInstDetailResponse postPayGroupInstDetail(PostPayGroupInstDetailRequest request);    /**

    /* 取消拼团订单
     * @param request
     * @return
     */
    PostPayGroupInstDetailResponse cancelPayGroupInstDetail(CancelPayGroupInstDetailRequest request);

    RestResult<PageResult<QueryGroupProductListResponse>> queryGroupProductList(QueryGroupProductListRequest request);

    RestResult<List<MyBargainResponse>> launchGrouponProductDetail(MyBargainRequest request);


    /**
     * 查询开团详情
     *
     * @param request
     * @return
     */
    RestResult<CurrentJoinedGroupResponse> getCurrentJoinedGroupInfo(CurrentJoinedGrouponRequest request);

    /**
     * 我的拼团列表
     *
     * @param request
     * @return
     */
    RestResult<PageResult<GroupInfoResponse>> getMyGroupList(GrouponListRequest request);

    /**
    * @Autor: zhaowei
    * @Date: 2020/12/4 02:01
    * @Description: 根据订单号查询拼团实例详情
    */
    RestResult<LaunchGrouponDetailResponse> queryLaunchGrouponOrderInfo(LaunchGrouponDetailRequest request);
}
